


#ifndef PF_LAYERLISTLISTENER_H
#define PF_LAYERLISTLISTENER_H

#include "pf_layer.h"
#include "lx_Export.h"

/**
 * This class is an interface for classes that are interested in
 * knowing about changes in the layer list. 
 */
class LX_EXPORT PF_LayerListObserver {
public:
    PF_LayerListObserver() {}
    virtual ~PF_LayerListObserver() {}

    /**
     * Called when the active layer changes.
     */
    virtual void layerActivated(PF_Layer*) {}

    /**
     * Called when a new layer is added to the list.
     */
    virtual void layerAdded(PF_Layer*) {}

    /**
     * Called when a layer is removed from the list.
     */
    virtual void layerRemoved(PF_Layer*) {}

    /**
     * Called when a layer's attributes are modified.
     */
    virtual void layerEdited(PF_Layer*) {}

    /**
     * Called when a layer's visibility is toggled. 
     */
    virtual void layerToggled(PF_Layer*) {}
}
;

#endif
